/**
 * @Description: 自适应大屏
 * @Author 卞鹏飞 <228443632@qq.com>
 * @create 2023/12/5 23:44
 */
import { onBeforeUnmount, onMounted } from 'vue'
import autofit from 'autofit.js' // 自适应大屏

/**
 *
 * @param options 选项
 * @param {string} options.el
 * @param {number|string} [options.dw]
 * @param {number|string} [options.dh]
 * @param {boolean} [options.resize]
 * @param {string|string[]} [options.ignore]
 * @param {number} [options.delay]
 * @param {number} [options.limit]
 *
 * - 传入对象，对象中的属性如下：
 * - el（可选）：渲染的元素，默认是 "body"
 * - dw（可选）：设计稿的宽度，默认是 1920
 * - dh（可选）：设计稿的高度，默认是 1080
 * - resize（可选）：是否监听resize事件，默认是 true
 * - ignore(可选)：忽略缩放的元素（该元素将反向缩放），参数见readme.md
 * - transition（可选）：过渡时间，默认是 0
 * - delay（可选）：延迟，默认是 0
 * @return {{autofit: autofit}}
 */
function useAutoFit(options = {}) {
  onMounted(() => {
    autofit.init(options, true)
  })

  onBeforeUnmount(() => {
    autofit.off()
  })

  return {
    autofit
  }
}

export default useAutoFit
